闲扯
一道线段树好题裸题
顺便吐槽一下出题人的数据。。。
最开始没看到 $A$ 可能大于 $B$ ,结果 $WA$ 了。。
题面
Solution
看范围, $T\leq30$ ,发现可以用二进制表示是否包含每一种颜料,接下来的事就好办了。
对于操作 $1$ ,是一个区间覆盖,直接将 $s$ 变成 $1<<(C-1)$ ,表示这个区间现在只含有 $C$ 这种颜料,懒标记换一下。
下放也是一样的操作。
向上统计的时候直接用左区间的 $s$ 或上右区间的 $s$ 即 $T[cur].s=T[lc].s\mid T[rc].s$ 。
每一次查询时找到表示这段区间的 $s$ ,然后直接查看有包含几个 $1$ 即可。
Code
1 |
|
总结
蒟蒻颓了一晚上还是做点题吧。。
马上 $NOIP$ 了虽然它已经死了,感觉好慌呀 $qwq$ 。
这样的模板题要追求速度,同时还要保证正确率,不然考场上一慌就 $GG$ 。